package com.ct.service;

import java.util.List;

import com.ct.entity.po.AdvanceApproval;
import com.ct.entity.query.AdvanceApprovalQuery;
import com.ct.entity.vo.PaginationResultVO;
import com.ct.entity.vo.TravelVO;

/**
 * 财务人员审批预支款记录 业务接口
 */
public interface AdvanceApprovalService {

    /**
     * 根据条件查询列表
     */
    List<AdvanceApproval> findListByParam(AdvanceApprovalQuery param);

    /**
     * 根据条件查询列表
     */
    Integer findCountByParam(AdvanceApprovalQuery param);

    /**
     * 分页查询
     */
    PaginationResultVO<AdvanceApproval> findListByPage(AdvanceApprovalQuery param);

    /**
     * 新增
     */
    Integer add(AdvanceApproval bean);

    /**
     * 批量新增
     */
    Integer addBatch(List<AdvanceApproval> listBean);

    /**
     * 批量新增/修改
     */
    Integer addOrUpdateBatch(List<AdvanceApproval> listBean);

    /**
     * 多条件更新
     */
    Integer updateByParam(AdvanceApproval bean, AdvanceApprovalQuery param);

    /**
     * 多条件删除
     */
    Integer deleteByParam(AdvanceApprovalQuery param);

    /**
     * 根据AdvanceApprovalId查询对象
     */
    AdvanceApproval getAdvanceApprovalByAdvanceApprovalId(Integer advanceApprovalId);

    /**
     * 根据AdvanceApprovalId修改
     */
    Integer updateAdvanceApprovalByAdvanceApprovalId(AdvanceApproval bean, Integer advanceApprovalId);

    /**
     * 根据AdvanceApprovalId删除
     */
    Integer deleteAdvanceApprovalByAdvanceApprovalId(Integer advanceApprovalId);

    /**
     * 分页查询预支款审批记录
     * 
     * @param userId   工号
     * @param pageNo   页码
     * @param pageSize 页大小
     * @return 分页结果
     */
    PaginationResultVO<TravelVO> getApproveAdvanceRecord(String userId, Integer pageNo, Integer pageSize);

    AdvanceApproval getAdvanceApprovalByAdvanceId(Integer advanceId);
}